package bom.example.common.sql;

/**
 * @author X.I.O
 * @title: AlterTable
 * @projectName spring-boot-luncene
 * @description: TODO
 * @date 2021/11/16 14:27
 *
 * 修改表
 */
public class AlterTable {


    /**
     * 为表添加主键id
     * @return 添加主键id的sql 语句
     */
    public static String addPrimaryId(String tableName){
        String s="alter table %s add id int(10) primary key not null auto_increment comment '自增id' ;";
        return String.format(s,tableName);
    }

    /**
     * 为表添加创建时间
     * @param tableName
     * @return
     */
    public static String addCreateDate(String tableName){
        String s="alter table %s add createdate date comment '创建时间';";
        return String.format(s,tableName);
    }


    /**
     * 为表添加更新时间
     * @param tableName
     * @return
     */
    public static String addUpdateDate(String tableName){
        String s="alter table %s add updatedate date comment '更新时间';";
        return String.format(s,tableName);
    }

    /**
     * 添加删除状态
     * @param tableName
     * @return
     */
    public static String addDeleteField(String tableName){
        String s="alter table %s add delete_status bit(1) comment '删除状态';";
        return String.format(s,tableName);
    }

    /**
     * 为表添加长文本字段
     * @param tableName 表名
     * @param field  属性
     * @param isNull  字段名
     * @return
     */
    public static String addLongTxtField(String tableName,String field,boolean isNull){
        String s="alter table %s add txt longtext ;";
        return String.format(s,tableName);
    }


    /**
     * 为表添加公共属性
     * @param tableName
     * @return
     */
    public static String addCommon(String tableName){
        String s="alter table %s add id int(11) primary key not null auto_increment comment '主键id'," +
                "  add delete_status bit(1) DEFAULT 1 comment '删除状态', " +
                "   add updatedate date comment '更新时间', " +
                "   add createdate date comment '创建时间' ";
        return String.format(s,tableName);
    }



}
